/* myOLED.c */
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>
#include "oled.h"
#include "font.h"

#include "myOLED.h"

#define FILENAME "/dev/i2c-3"    // 设备文件名
static struct display_info disp; // 显示信息结构体

int oled_show(void *arg) // 显示垃圾信息
{
    unsigned char *buffer = (unsigned char *)arg; // 获取垃圾信息
    oled_putstrto(&disp, 0, 0, "Garbage type:");
    disp.font = font2;

    switch (buffer[2]) // 根据垃圾类型显示垃圾名称
    {
    case 0x41:
        oled_putstrto(&disp, 0, 20, "Gan Garbage"); // 干垃圾
        break;
    case 0x42:
        oled_putstrto(&disp, 0, 20, "Shi Garbage"); // 湿垃圾
        break;
    case 0x43:
        oled_putstrto(&disp, 0, 20, "KeHuiShou Garbage"); // 可回收垃圾
        break;
    case 0x44:
        oled_putstrto(&disp, 0, 20, "YouHai Garbage"); // 有害垃圾
        break;
    case 0x45:
        oled_putstrto(&disp, 0, 20, "Not Garbage"); // 未识别到垃圾类型
        break;
    }
    disp.font = font2;       // 选择字体
    oled_send_buffer(&disp); // 发送显示缓冲区

    return 0;
}

int myoled_init(void) // 初始化OLED屏幕
{
    int e; // 错误码

    disp.address = OLED_I2C_ADDR;   // 设置OLED地址
    disp.font = font2;              // 选择字体
    e = oled_open(&disp, FILENAME); // 打开OLED设备
    e = oled_init(&disp);           // 初始化OLED屏幕

    return e;
}
